package icu.zhhll.util.codec;

import icu.zhhll.util.lang.HexUtils;
import org.apache.commons.lang3.StringUtils;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author zh
 * @date 2023/7/31 22:33
 */
class BaseDigest {

    /**
     * 获取MessageDigest实例
     *
     * @param algorithm
     * @return
     */
    static MessageDigest getInstance(String algorithm) {
        MessageDigest m;
        try {
            m = MessageDigest.getInstance(algorithm);
        } catch (NoSuchAlgorithmException e) {
            throw new CodecException("没有找到对应的算法", e);
        }
        return m;
    }

    /**
     * 进行加密
     *
     * @param m
     * @param inputText
     * @return
     */
    static String encrypt(MessageDigest m, String inputText) {
        if (StringUtils.isBlank(inputText)) {
            throw new IllegalArgumentException("请输入要加密的内容");
        }
        // 摘要处理
        byte[] s = m.digest(inputText.getBytes(StandardCharsets.UTF_8));

        return HexUtils.bytesToHexString(s);
    }


}
